/******************************************
 * Nombre del archivo: Variables.java
 * Universidad del Valle de Guatemala
 * Curso: Algoritmos y Estructura de Datos
 * Autores:
 *      * Martín Guzmán     08041
 *      * David Hsieh       08225
 *      * Eduardo Mejicano  08058
 *      * Kevin Sánchez     08302
 * Fecha: 05 de septiembre de 2009
 * Descripción:
*******************************************/
import java.util.ArrayList;


public class Lista_Variables {
    public static ArrayList<Variable> variables = new ArrayList();

    public static String setq(String nombre, String valor) {
        //System.out.println("nombre: "+nombre+" valor: "+valor);
        if(getValor(nombre)!=null){
            for(int i=0;i<variables.size();i++){
                if(variables.get(i).getNombre().compareToIgnoreCase(nombre)==0){
                    variables.remove(i);
                    break;
                }
            }
            variables.add(new Variable(nombre, valor));
        }
        else{
            variables.add(new Variable(nombre, valor));
        }

        //System.out.println("SI SE CREO VAR"); ///REMOVE
        return valor;
    }

    /*****************************************
     * Método: getValor
     * Autor: Martín Guzmán
     * Uso: para obtener el valor de una variable
     *      ya definida
     * Retorno: un string con el valor de la variable
     *      o null si no existe
     *****************************************/
    public static String getValor(String nombre) {
        //busca el valor entre la lista de variables definidas, de lo contrario devuelve null
        for(int i=0; i<Lista_Variables.cantidad();i++) {
            String variable = Lista_Variables.getNombre(i);
            if(nombre.compareToIgnoreCase(variable) ==0) {
                return variables.get(i).getValor();
            }
        }
        return null;
    }
    /*****************************************
     * Método: cantidad
     * Autor: David Hsieh
     * Uso: saber la cantidad de variables definidas
     * Retorno: número con la cantidad de variables
     *****************************************/
    public static int cantidad() {
        return variables.size();
    }

    public static String getNombre(int index) {
        return variables.get(index).getNombre();
    }


}
